

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=auto>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/img/favicon.png">
  <link rel="icon" href="/img/favicon.png">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="author" content="风间">
  <meta name="keywords" content="">
  
    <meta property="og:type" content="website">
<meta property="og:title" content="风间小栈">
<meta property="og:url" content="http://example.com/page/2/index.html">
<meta property="og:site_name" content="风间小栈">
<meta property="og:locale" content="zh_CN">
<meta property="article:author" content="风间">
<meta name="twitter:card" content="summary_large_image">
  
  
  <title>风间小栈</title>

  <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4/dist/css/bootstrap.min.css" />



<!-- 主题依赖的图标库，不要自行修改 -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">


<link  rel="stylesheet" href="/css/main.css" />

<!-- 自定义样式保持在最底部 -->


  <script id="fluid-configs">
    var Fluid = window.Fluid || {};
    var CONFIG = {"hostname":"example.com","root":"/","version":"1.8.13","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"right","visible":"hover","icon":"§"},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"copy_btn":true,"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"baidu":null,"google":null,"gtag":null,"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/local-search.xml"};
  </script>
  <script  src="/js/utils.js" ></script>
  <script  src="/js/color-schema.js" ></script>
<meta name="generator" content="Hexo 5.4.0"></head>


<body>
  <header style="height: 100vh;">
    <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand" href="/">
      <strong>风间小栈</strong>
    </a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/">
                <i class="iconfont icon-home-fill"></i>
                首页
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/archives/">
                <i class="iconfont icon-archive-fill"></i>
                归档
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/categories/">
                <i class="iconfont icon-category-fill"></i>
                分类
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/tags/">
                <i class="iconfont icon-tags-fill"></i>
                标签
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/about/">
                <i class="iconfont icon-user-fill"></i>
                关于
              </a>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
              &nbsp;<i class="iconfont icon-search"></i>&nbsp;
            </a>
          </li>
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">&nbsp;<i
                class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

    <div class="banner" id="banner" parallax=true
         style="background: url('/img/cpu.jpg') no-repeat center center;
           background-size: cover;">
      <div class="full-bg-img">
        <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
          <div class="page-header text-center fade-in-up">
            <span class="h2" id="subtitle" title="日间工夫，觉纷扰则静坐，觉懒看书则且看书，是亦因病而药">
              
            </span>

            
          </div>

          
            <div class="scroll-down-bar">
              <i class="iconfont icon-arrowdown"></i>
            </div>
          
        </div>
      </div>
    </div>
  </header>

  <main>
    
      <div class="container nopadding-x-md">
        <div class="py-5" id="board"
          style=margin-top:0>
          
          <div class="container">
            <div class="row">
              <div class="col-12 col-md-10 m-auto">
                


  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%90%8C%E6%AD%A5%E4%B8%8E%E5%BC%82%E6%AD%A5%E9%98%BB%E5%A1%9E%E4%B8%8E%E9%9D%9E%E9%98%BB%E5%A1%9E/" target="_self">
          <img src="http://cdn-hw-static.shanhutech.cn/bizhi/staticwp/202212/12a8874eaddc8dc155d5771dddb0e597--3727341691.jpg" srcset="/img/loading.gif" lazyload alt="同步与异步、阻塞与非阻塞">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%90%8C%E6%AD%A5%E4%B8%8E%E5%BC%82%E6%AD%A5%E9%98%BB%E5%A1%9E%E4%B8%8E%E9%9D%9E%E9%98%BB%E5%A1%9E/" target="_self">
          同步与异步、阻塞与非阻塞
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%90%8C%E6%AD%A5%E4%B8%8E%E5%BC%82%E6%AD%A5%E9%98%BB%E5%A1%9E%E4%B8%8E%E9%9D%9E%E9%98%BB%E5%A1%9E/" target="_self">
          
          一个误解：同步就是阻塞，异步就是非阻塞   同步阻塞： 客户端发送请求给服务端，此时服务端处理任务时间很久，则客户端就被服务端堵塞了，所以客户端会一直等待服务端的响应，此时客户端不能做其它的事，服务端也不会接受其他客户端的请求。这种通信机制比较简单粗暴，但是效率不高。  同步非阻塞： 客户端发送请求给服务端，此时服务端处理任务时间很久，这个时候虽然客户端会一直等待响应，但是服务端可以处理其他的请
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/java/">java</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/IO/">IO</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%8C%81%E4%B9%85%E5%B1%82%E6%A1%86%E6%9E%B6mybatis/" target="_self">
          <img src="http://cdn-hw-static.shanhutech.cn/bizhi/staticwp/202303/97ece48fcb70842d305d559e383cc7a2--828608670.jpg" srcset="/img/loading.gif" lazyload alt="持久层框架:mybatis">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%8C%81%E4%B9%85%E5%B1%82%E6%A1%86%E6%9E%B6mybatis/" target="_self">
          持久层框架:mybatis
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%8C%81%E4%B9%85%E5%B1%82%E6%A1%86%E6%9E%B6mybatis/" target="_self">
          
          1. 简介MyBatis 是⼀款优秀的基于 ORM 的半⾃动轻量级持久层框架，它⽀持定制化 SQL、存储过程以及⾼级映射。MyBatis 避免了⼏乎所有的JDBC代码和⼿动设置参数以及获取结果集。MyBatis 可以使⽤简单的XML或注解来配置和映射原⽣类型、接⼝和 Java 的 POJO （Plain Old Java Objects,普通⽼式 Java 对象）为数据库中的记录。 Tips: 官
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/java/">java</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/mybatis/">mybatis</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%E4%B9%8Blogback/" target="_self">
          <img src="http://cdn-hw-static.shanhutech.cn/bizhi/staticwp/202301/94acca2f853e20e8a403ee8592f29ab9--896443764.jpg" srcset="/img/loading.gif" lazyload alt="日志框架之 Logback">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%E4%B9%8Blogback/" target="_self">
          日志框架之 Logback
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%E4%B9%8Blogback/" target="_self">
          
          纷杂の日志框架   日志门面：JCL SLF4J Jboss-Logging    日志实现：JUL Log4j Log4j2 Logbck 真假猴王SLF4J、Log4j、Logbck 均出自一人之手 Ceki Gülcü，而 Log4j2 则是 apache 开发的，Logback 才是真正意义上的 ‘Log4j2’，是 Log4j 的升级版。 溯源 官网地址：传送门  Logback 构成模
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/java/">java</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/logback/">logback</a>
            
              <a href="/tags/%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6/">日志框架</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/04/27/21226aa2a1d579b1.png" srcset="/img/loading.gif" lazyload alt="项目部署到云服务器">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE/" target="_self">
          项目部署到云服务器
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE/" target="_self">
          
          一、购买云服务器购买云服务器后，厂商会提供一个公网IP和内网IP，我们需要使用 SSH 工具连接到云服务器，随后就能在命令行中操作 linux 系统。  公网IP：123.60.176.118内网IP：192.168.0.12 二、安装 JDK 服务器安装JDK之前，先确保有没有默认安装JDK，执行以下命令进行检查：   1java -version    如果是自己在虚拟机上安装的 centos
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E8%BF%90%E7%BB%B4/">运维</a>
            
              <a href="/categories/%E8%BF%90%E7%BB%B4/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8/">云服务器</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8/">云服务器</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BC%9A%E8%AF%9D/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/04/28/fa0e3149a27c1251.jpg" srcset="/img/loading.gif" lazyload alt="分布式会话">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BC%9A%E8%AF%9D/" target="_self">
          分布式会话
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BC%9A%E8%AF%9D/" target="_self">
          
          1. 分布式会话1.1 什么是会话？会话 session 代表的是客户端与服务器的一次交互过程，这个过程可以是连续的也可以是时断时续的.曾经的 servlet 时代（jsp），一旦用户与服务端交互，tomcat 服务器就会为用户创建一个 session，同时前端会有一个 jsessionid，每次交互都会携带。如此一来, 服务器只要在接收到用户请求的时候，就可以拿到 jsessionid，并根据这
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BC%9A%E8%AF%9D/">分布式会话</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/redis/">redis</a>
            
              <a href="/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BC%9A%E8%AF%9D/">分布式会话</a>
            
              <a href="/tags/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/">单点登录</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%89%EF%BC%89/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/05/06/debcba54d0f154b7.jpg" srcset="/img/loading.gif" lazyload alt="Spring 核心编程思想（三）：Spring IoC 容器概述">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%89%EF%BC%89/" target="_self">
          Spring 核心编程思想（三）：Spring IoC 容器概述
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%89%EF%BC%89/" target="_self">
          
          1. Spring IoC 容器概述   内容    Spring IoC 依赖查找   Spring IoC 依赖注入   Spring IoC 依赖来源   Spring IoC 配置元信息   Spring IoC 容器   Spring 应用上下文   使用 Spring IoC 容器   Spring IoC 容器生命周期   面试题精选   2. Spring IoC 依赖查找 根据
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/spring-%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/">spring 核心编程思想</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/spring/">spring</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%BA%8C%EF%BC%89/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/05/06/43c27790d5a8ea71.jpg" srcset="/img/loading.gif" lazyload alt="Spring 核心编程思想（二）：重新认识 IoC">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%BA%8C%EF%BC%89/" target="_self">
          Spring 核心编程思想（二）：重新认识 IoC
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%BA%8C%EF%BC%89/" target="_self">
          
          1. 重新认识 IoC   内容 说明    IoC 发展简介 包括 IoC 的定义以及它的一个简史   IoC 主要实现策略 其实 IoC 不只是我们所看到的包括 Martin Fowler 或者是像 Spring 官方的它的一个讨论   IoC 容器的职责 有多方解读来进行说明   IoC 容器的实现 包括了我们的开源实现和传统实现   传统 IoC 容器实现 着重介绍就是一种关于Java B
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/spring-%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/">spring 核心编程思想</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/spring/">spring</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/vue3/" target="_self">
          <img src="http://cdn-hw-static.shanhutech.cn/bizhi/staticwp/202303/9a109e7083b3399595d9374ca7ca7ff6--2456931338.jpg" srcset="/img/loading.gif" lazyload alt="玩转 vue3">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/vue3/" target="_self">
          玩转 vue3
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/vue3/" target="_self">
          
          项目搭建版本要求vue3.2 版本：vue-cli 版本 4.5.13 以上 首次安装安装 node，版本要求 v12以上，安装 node 后自带 npm 安装 nrm，镜像源管理，nrm use xxx 切换镜像源 npm install nrm -g npm install -g @vue&#x2F;cli 版本更新vue -V 检查版本 vue update -g @vue&#x2F;cli vue-cli 创
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%89%8D%E7%AB%AF/">前端</a>
            
              <a href="/categories/%E5%89%8D%E7%AB%AF/vue3/">vue3</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/vue3/">vue3</a>
            
              <a href="/tags/elementPlus/">elementPlus</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%8B%BE%E9%81%97/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/04/27/52da9818399ac791.png" srcset="/img/loading.gif" lazyload alt="spring拾遗">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%8B%BE%E9%81%97/" target="_self">
          spring拾遗
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%8B%BE%E9%81%97/" target="_self">
          
          spring 当一个类中既有构造方法，又有 set 方法时，依赖注入会失败，因为 spring 优先使用构造方法实现 DI 123456789101112131415161718public class UserServiceImpl implements IUserService &amp;#123;    private IUserDao userDao;    &#x2F;&#x2F; 构造方法的存在会导致注入失败
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/spring/">spring</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/spring/">spring</a>
            
          </div>
        
      </div>
    </article>
  </div>

  <div class="row mx-auto index-card">
    
    
      <div class="col-12 col-md-4 m-auto index-img">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%80%EF%BC%89/" target="_self">
          <img src="https://s3.bmp.ovh/imgs/2023/05/05/55a1ab8e31eb229d.jpg" srcset="/img/loading.gif" lazyload alt="Spring 核心编程思想（一）：Spring Framework 总览">
        </a>
      </div>
    
    <article class="col-12 col-md-8 mx-auto index-info">
      <h1 class="index-header">
        
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%80%EF%BC%89/" target="_self">
          Spring 核心编程思想（一）：Spring Framework 总览
        </a>
      </h1>

      <p class="index-excerpt">
        <a href="/2023/05/08/%E5%90%8E%E7%AB%AF/java/spring%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%EF%BC%88%E4%B8%80%EF%BC%89/" target="_self">
          
          1. Spring Framework 总览   内容 说明    准备工作 学习 Spring Framework 需要哪些前期铺垫   特性总览 了解 Spring Framework 提供了哪些功能特性   版本特性 关于版本分布与特性之间的关系   模块化设计 Spring 如何从单一的模块划分成不同的模块   对 Java 语言特性的运用 Spring 每个版本的语言支持   对 JDK
        </a>
      </p>

      <div class="index-btm post-metas">
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-date"></i>
            <time datetime="2023-05-08 09:46" pubdate>
              2023-05-08
            </time>
          </div>
        
        
          <div class="post-meta mr-3">
            <i class="iconfont icon-category"></i>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/">后端</a>
            
              <a href="/categories/%E5%90%8E%E7%AB%AF/spring-%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/">spring 核心编程思想</a>
            
          </div>
        
        
          <div class="post-meta">
            <i class="iconfont icon-tags"></i>
            
              <a href="/tags/spring/">spring</a>
            
          </div>
        
      </div>
    </article>
  </div>



  <nav aria-label="navigation">
    <span class="pagination" id="pagination">
      <a class="extend prev" rel="prev" href="/"><i class="iconfont icon-arrowleft"></i></a><a class="page-number" href="/">1</a><span class="page-number current">2</span><a class="page-number" href="/page/3/#board">3</a><a class="extend next" rel="next" href="/page/3/#board"><i class="iconfont icon-arrowright"></i></a>
    </span>
  </nav>



              </div>
            </div>
          </div>
        </div>
      </div>
    

    
      <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
      </a>
    

    
      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v"
                 for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>
    

    
  </main>

  <footer class="text-center mt-5 py-3">
  <div class="footer-content">
    风间小栈出品
  </div>
  
  <div class="statistics">
    
    

    
      
        <!-- 不蒜子统计PV -->
        <span id="busuanzi_container_site_pv" style="display: none">
            总访问量 
            <span id="busuanzi_value_site_pv"></span>
             次
          </span>
      
      
        <!-- 不蒜子统计UV -->
        <span id="busuanzi_container_site_uv" style="display: none">
            总访客数 
            <span id="busuanzi_value_site_uv"></span>
             人
          </span>
      
    
  </div>


  

  
</footer>


  <!-- SCRIPTS -->
  
  <script  src="https://cdn.jsdelivr.net/npm/nprogress@0/nprogress.min.js" ></script>
  <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nprogress@0/nprogress.min.css" />

  <script>
    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
    NProgress.start()
    window.addEventListener('load', function() {
      NProgress.done();
    })
  </script>


<script  src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js" ></script>
<script  src="https://cdn.jsdelivr.net/npm/bootstrap@4/dist/js/bootstrap.min.js" ></script>
<script  src="/js/events.js" ></script>
<script  src="/js/plugins.js" ></script>

<!-- Plugins -->


  <script  src="/js/local-search.js" ></script>



  
    <script  src="/js/img-lazyload.js" ></script>
  



  





  <script defer src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" ></script>




  <script  src="https://cdn.jsdelivr.net/npm/typed.js@2/lib/typed.min.js" ></script>
  <script>
    (function (window, document) {
      var typing = Fluid.plugins.typing;
      var title = document.getElementById('subtitle').title;
      
        typing(title);
      
    })(window, document);
  </script>















<!-- 主题的启动项 保持在最底部 -->
<script  src="/js/boot.js" ></script>


</body>
</html>
